import { UIConfig } from "../../SysConfig/SysConfig";

export class UIPrefabInfo {
    /**UI面板路径 */
    public _uiPath: string;
    /**UI面板名称 */
    public _uiName: string;
    /**UI面板等级 <1级互斥作为父面板；2级依赖1级存在作为子面板；3级独立存在>*/
    public _uiLevel: number;
    /**UI面板遮罩 <1显示且有事件, 2显示且没有事件, 3不显示且没有事件>*/
    public _uiMaskBg: number = 3;
    /**UI面板释放 <true释放；false不释放>*/
    public _uiRelease: boolean = true;
}

export default class UIPlaneInfo {
    private static Instance: UIPlaneInfo = null;

    public static GetInstance() {
        if (UIPlaneInfo.Instance == null) {
            UIPlaneInfo.Instance = new UIPlaneInfo();
        }

        return UIPlaneInfo.Instance;
    }

    /**存储UI面板相关配置 */
    private uiPlaneInfos: Array<UIPrefabInfo> = new Array();

    /**
     * 初始化信息
     */
    public init() {
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST] = new UIPrefabInfo();
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST]._uiPath = 'UIPrefab/';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST]._uiName = 'ViewTest';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST]._uiLevel = 1;
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST]._uiMaskBg = 1;

        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST1] = new UIPrefabInfo();
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST1]._uiPath = 'UIPrefab/';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST1]._uiName = 'ViewTest1';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST1]._uiLevel = 1;
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST1]._uiMaskBg = 3;
        //this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST1]._uiRelease = false;


        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST2] = new UIPrefabInfo();
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST2]._uiPath = 'UIPrefab/';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST2]._uiName = 'ViewTest2';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST2]._uiLevel = 1;
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST2]._uiMaskBg = 1;

        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST3] = new UIPrefabInfo();
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST3]._uiPath = 'UIPrefab/';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST3]._uiName = 'ViewTest3';
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST3]._uiLevel = 1;
        this.uiPlaneInfos[UIConfig.UI_TYPE_ID.UI_UID_TEST3]._uiMaskBg = 1;
    }

    /**
     * 获取面板信息配置
     * @param ui_uid 
     * @returns 
     */
    public getPlanInfo(ui_uid: UIConfig.UI_TYPE_ID) {
        return this.uiPlaneInfos[ui_uid];
    }

}
